/**
 * 
 */

$(document).ready(function() {
					var VAL = {
						// 此处不同
						T_FSPBOXCHG : "FSPBOXCHG",
						NORMAL : "0000000",
						DISABLED_ATTR : {
							"disabled" : true
						},
						ENABLED_ATTR : {
							"disabled" : false
						}
					};

					var domObj = {
						$retboxATxt : $("#retboxATxt"),
						$retboxBTxt : $("#retboxBTxt"),

						buttons : {
							$query_btn : $("#query_btn"),
							$save_btn : $("#save_btn"),
							$savea_btn : $("#savea_btn"),
						},

						grids : {
							$retPrdAListGrd : $("#retPrdAListGrd"),
							$retPrdBListGrd : $("#retPrdBListGrd"),
						},
					};

					function initRetPrdAListGrd() {
						domObj.grids.$retPrdAListGrd
								.jqGrid({
									url : "",
									datatype : "local",
									mtype : "POST",
									height : 500,
									width : 700,
									autowidth : true,
                                    shrinkToFit:false,
                                    autoScroll: false,
									resizable : true,
								/*	loadonce : true,*/
									viewrecords : true,
									// rownumbers : true,
									rowNum :60,
									multiselect : true,
									emptyrecords : true,
									pager : "retPrdAListPg",
									colModel : [ {
										name : 'slot_no',
										index : 'slot_no',
										label : SLOT_NO_TAG,
                                        sortable : false,
										width : 60
									}, {
										name : 'box_id_fk',
										index : 'box_id_fk',
										label : CASSETTE_NO_TAG,
                                        sortable : false,
										width : 120
									}, {
										name : 'prd_seq_id',
										index : 'prd_seq_id',
										label : SHEET_ID_TAG,
                                        sortable : false,
										width : 120
									}, {
										name : 'prd_stat',
										index : 'prd_stat',
										label : PRD_STAT_TAG,
                                        sortable : false,
										width : 110
									}, {
										name : 'prd_qty',
										index : 'prd_qty',
										label : PRD_QTY_TAG,
                                        sortable : false,
										width : 100
									}, {
										name : 'mdl_id_fk',
										index : 'mdl_id_fk',
										label : MDL_ID_TAG,
                                        sortable : false,
										width : 120
									}, {
										name : 'prd_grade',
										index : 'prd_grade',
										label : PRD_GRADE_TAG,
                                        sortable : false,
										width : 100
									} ],
									ondblClickRow : function(rowIdA) {
										// 1.获得选中的行ID
										var rowDataA, selRowIdB, rowDataB, rowDa;
										rowDataA = domObj.grids.$retPrdAListGrd
												.jqGrid("getRowData", rowIdA);
										if (rowDataA.box_id_fk == "") {
											showErrorDialog("", "A交换箱该子格位没有数据，请重新选择有数据的子格位！");
											// domObj.grids.$retPrdAListGrd
											// 		.jqGrid("resetSelection");
											domObj.grids.$retPrdBListGrd.jqGrid("resetSelection");
											return false;
										}
										// 获得B行的选中的数据
										selRowIdB = domObj.grids.$retPrdBListGrd
												.jqGrid("getGridParam",
														"selrow");
										if(!selRowIdB){
											showErrorDialog("","请选择B交换箱空子格位！");
											return false;
										}

										rowDataB = domObj.grids.$retPrdBListGrd
										.jqGrid("getRowData", selRowIdB);

											if (rowDataB.box_id_fk) {
												showErrorDialog("",
														"B交换箱该子格位已有数据，请重新选择空子格位！");
											/*	domObj.grids.$retPrdAListGrd
														.jqGrid("resetSelection");*/
                                                domObj.grids.$retPrdBListGrd.setSelection(selRowIdB,false);
												return false;
											}
											// 给b行附上数据，a行删除选中数据
											// 赋的数据 子格位/玻璃代码要变 setCell
											domObj.grids.$retPrdBListGrd.jqGrid(
													"setRowData", selRowIdB,
													rowDataA);
											domObj.grids.$retPrdBListGrd.jqGrid(
													"setCell", selRowIdB, 1,
													rowDataB.slot_no);
											//有点小Bug
											/*domObj.grids.$retPrdBListGrd.jqGrid(
													"setCell", selRowIdB, 2,
													domObj.$retboxBTxt.val());*/
											// 删除y问题 (要保留子格位)除了子格位，其他单元格赋空值
                                        /*domObj.grids.$retPrdAListGrd.jqGrid("delRowData",rowIdA);*/
											rowDa = {
												box_id_fk : "",
												prd_seq_id : "",
												prd_stat : "",
												prd_qty : "",
												mdl_id_fk : "",
												prd_grade : ""
											};
											domObj.grids.$retPrdAListGrd.jqGrid(
													"setRowData", rowIdA, rowDa);
									}
								})
					};



					function initRetPrdBListGrd() {
						domObj.grids.$retPrdBListGrd
								.jqGrid({
									url : "",
									datatype : "local",
									mtype : "POST",
									height : 500,
									width : 700,
									autowidth : true,
                                    shrinkToFit:false,
                                    autoScroll: false,
									resizable : true,
									/*loadonce : true,*/
									viewrecords : true,
									// rownumbers : true,
									rowNum : 60,
									multiselect : true,
									emptyrecords : true,
									pager : "retPrdBListPg",
									colModel : [ {
										name : 'slot_no',
										index : 'slot_no',
										label : SLOT_NO_TAG,
                                        sortable : false,
										width : 60
									}, {
										name : 'box_id_fk',
										index : 'box_id_fk',
										label : CASSETTE_NO_TAG,
                                        sortable : false,
										width : 120
									}, {
										name : 'prd_seq_id',
										index : 'prd_seq_id',
										label : SHEET_ID_TAG,
                                        sortable : false,
										width : 120
									}, {
										name : 'prd_stat',
										index : 'prd_stat',
										label : PRD_STAT_TAG,
                                        sortable : false,
										width : 100
									}, {
										name : 'prd_qty',
										index : 'prd_qty',
										label : PRD_QTY_TAG,
                                        sortable : false,
										width : 100
									}, {
										name : 'mdl_id_fk',
										index : 'mdl_id_fk',
										label : MDL_ID_TAG,
                                        sortable : false,
										width : 120
									}, {
										name : 'prd_grade',
										index : 'prd_grade',
										label : PRD_GRADE_TAG,
                                        sortable : false,
										width : 100
									} ],
									ondblClickRow : function(rowIdB) {
										// 1.获得选中的行ID
										var rowDataB, selRowIdA, rowDataA, rowDa;
										rowDataB = domObj.grids.$retPrdBListGrd
												.jqGrid("getRowData", rowIdB);
										if (rowDataB.box_id_fk == "") {
											showErrorDialog("",
													"B交换箱该子格位没有数据，请重新选择有数据的子格位！");
											domObj.grids.$retPrdAListGrd
													.jqGrid("resetSelection");
											domObj.grids.$retPrdBListGrd
													.jqGrid("resetSelection");
											return false;
										}
										// 获得A行的选中的数据
										selRowIdA = domObj.grids.$retPrdAListGrd
												.jqGrid("getGridParam",
														"selrow");
                                        if(!selRowIdA){
                                           showErrorDialog("","请选择A交换箱空子格位！");
                                           return false;
                                        }
										rowDataA = domObj.grids.$retPrdAListGrd
												.jqGrid("getRowData", selRowIdA);

										if (rowDataA.box_id_fk) {
											showErrorDialog("",
													"A交换箱该子格位已有数据，请重新选择空子格位！");
                                            domObj.grids.$retPrdAListGrd.setSelection(selRowIdA,false);

										/*	domObj.grids.$retPrdBListGrd
													.jqGrid("resetSelection");*/
											return false;
										}
										// 给B行附上数据，A行删除选中数据
										// 赋的数据 子格位/玻璃代码要变 setCell
										domObj.grids.$retPrdAListGrd.jqGrid(
												"setRowData", selRowIdA,
												rowDataB);
										domObj.grids.$retPrdAListGrd.jqGrid(
												"setCell", selRowIdA, 1,
												rowDataA.slot_no);
										/*domObj.grids.$retPrdAListGrd.jqGrid(
												"setCell", selRowIdA, 2,
												domObj.$retboxATxt.val());*/
										// 删除y问题 (要保留子格位)除了子格位，其他单元格赋空值

										rowDa = {
											box_id_fk : "",
											prd_seq_id : "",
											prd_stat : "",
											prd_qty : "",
											mdl_id_fk : "",
											prd_grade : ""
										};
										domObj.grids.$retPrdBListGrd.jqGrid(
												"setRowData", rowIdB, rowDa);

									}


								})
					};

					var buttonFnc = {
						queryFnc1 : function() {
							var inObj, outObj, tblCnt, boxSetCodeA, boxSetCodeB;
							boxSetCodeA = $.trim(domObj.$retboxATxt.val());
							boxSetCodeB = $.trim(domObj.$retboxBTxt.val());
							if (boxSetCodeA == "") {
								showErrorDialog("", "请输入交换箱A!");
								return false;
							}
							if (boxSetCodeB == "") {
								showErrorDialog("", "请输入交换箱B!");
								return false;
							}
							if(boxSetCodeA == boxSetCodeB){
								showErrorDialog("", "交换箱A和交换箱B不能相同，请重新输入!");
								return false;
							}
							inObj = {
								trx_id : VAL.T_FSPBOXCHG,
								action_flg : 'Q',
								box_idA : boxSetCodeA,
								box_idB : boxSetCodeB,
								tbl_cnt : 1
							}, outObj = comTrxSubSendPostJson(inObj);
							if (outObj.rtn_code === VAL.NORMAL) {
								setGridInfo(outObj.oaryA, "#retPrdAListGrd", true);
								setGridInfo(outObj.oaryB, "#retPrdBListGrd", true);
							}
						},
						queryFncA : function() {
							var inObj, outObj, tblCnt;
							var boxSetCodeA = $.trim(domObj.$retboxATxt.val());
							var boxSetCodeB = $.trim(domObj.$retboxBTxt.val());
							if (boxSetCodeA == "") {
								showErrorDialog("", "请输入交换箱A!");
								return false;
							};
							if(boxSetCodeA == boxSetCodeB){
								showErrorDialog("", "交换箱A和交换箱B不能相同，请重新输入!");
								return false;
							};
							inObj = {
								trx_id : VAL.T_FSPBOXCHG,
								action_flg : 'A',
								box_idA : boxSetCodeA,
								tbl_cnt : 1
							};
							outObj = comTrxSubSendPostJson(inObj);
							if (outObj.rtn_code === VAL.NORMAL) {
								setGridInfo(outObj.oaryA, "#retPrdAListGrd", true);
							}
						},
						queryFncB : function() {
							var inObj, outObj, tblCnt;
							var boxSetCodeA = $.trim(domObj.$retboxATxt.val());
							var boxSetCodeB = $.trim(domObj.$retboxBTxt.val());
							if (boxSetCodeB == "") {
								showErrorDialog("", "请输入交换箱B!");
								return false;
							}
							if(boxSetCodeA == boxSetCodeB){
								showErrorDialog("", "交换箱A和交换箱B不能相同，请重新输入!");
								return false;
							};
							inObj = {
								trx_id : VAL.T_FSPBOXCHG,
								action_flg : 'B',
								box_idB : boxSetCodeB,
								tbl_cnt : 1
							};
							outObj = comTrxSubSendPostJson(inObj);
							if (outObj.rtn_code === VAL.NORMAL) {
								setGridInfo(outObj.oaryB, "#retPrdBListGrd", true);
							}
						},
						saveFnc1 : function() {
							var inObj, outObj, tblCnt, retprdA, retprdB, boxIdA, boxIdB;
							// A表格所有行数据
							retprdA = domObj.grids.$retPrdAListGrd.getRowData();
							retprdB = domObj.grids.$retPrdBListGrd.getRowData();
							if (isEmptyObject(retprdA) && isEmptyObject(retprdB)) {
								showErrorDialog("", "列表为空，不能保存");
								return false;
							}
							boxIdA = domObj.$retboxATxt.val();
							boxIdB = domObj.$retboxBTxt.val();
							inObj = {
								trx_id : VAL.T_FSPBOXCHG,
								action_flg : 'C',
								iaryA : retprdA,
								iaryB : retprdB,
								box_idA : boxIdA,
								box_idB : boxIdB,
								tbl_cnt : 1
							},
							outObj = comTrxSubSendPostJson(inObj);
							if (outObj.rtn_code === VAL.NORMAL) {
								buttonFnc.queryFnc1();
								showSuccessDialog("箱子交换成功");
							}
						},
                        // 单保存A卡匣内容
                        saveFnca : function() {
                            var rowData1, rowData2, ids, rowData;
                            var inObj, outObj, tblCnt, rowData1, rowData2, boxIdA;
                            // 检查A卡匣grid是否选择了两项
                            ids = domObj.grids.$retPrdAListGrd.jqGrid(
                                'getGridParam', 'selarrrow');
                            if (ids.length != 2) {
                                showErrorDialog("", "请选择两块屏体！");
                                return false;
                            }
                            for (var i = 0; i < ids.length; i++) {
                                rowData = domObj.grids.$retPrdAListGrd.jqGrid(
                                    "getRowData", ids[i]);
                                if (rowData.prd_seq_id == "" || rowData.prd_seq_id == null) {
                                    showErrorDialog("", "请选择非空的子格位！");
                                    return false;
                                }
                            }
                            // A表格所有行数据
                            rowData1 = domObj.grids.$retPrdAListGrd.jqGrid(
                                "getRowData", ids[0]);
                            rowData2 = domObj.grids.$retPrdAListGrd.jqGrid(
                                "getRowData", ids[1]);
                            var retprdA = [];
                            retprdA.push(rowData1);
                            retprdA.push(rowData2);

                            boxIdA = domObj.$retboxATxt.val();
                            inObj = {
                                trx_id : VAL.T_FSPBOXCHG,
                                action_flg : 'S',
                                iaryA : retprdA,
                                box_idA : boxIdA,
                                tbl_cnt : 1,
                            },
								outObj = comTrxSubSendPostJson(inObj);
                            if (outObj.rtn_code === VAL.NORMAL) {
                                buttonFnc.queryFncA();
                                showSuccessDialog("本交换箱屏体交换成功");
                            }
                        }
					};
                    var iniButtonAction = function(){
                        domObj.buttons.$query_btn.bind("click", buttonFnc.queryFnc1);
                        domObj.buttons.$save_btn.bind("click", buttonFnc.saveFnc1);
                        domObj.buttons.$savea_btn.bind("click", buttonFnc.saveFnca);
					};
                    var isEmptyObject = function (e) {
                         var t;
                         for (t in e)
                         return !1;
                         return !0
                    };
                    var otherActionBind = function(){
                        domObj.$retboxATxt.keydown(function(event) {
                            if (event.keyCode == 13) {
                                buttonFnc.queryFncA();
                            }
                        });
                        domObj.$retboxBTxt.keydown(function(event) {
                            if (event.keyCode == 13) {
                                buttonFnc.queryFncB();
                            }
                        });
					}
					function initPage() {
                        //Stop from auto commit
                        $("form").submit(function() {
                            return false;
                        });
                        domObj.$retboxATxt.val("");
						domObj.$retboxBTxt.val("");
						$("#retPrdAListGrd").jqGrid('clearGridData');
						$("#retPrdBListGrd").jqGrid('clearGridData');
                        iniButtonAction();
                        otherActionBind();
                        initRetPrdBListGrd();
                        initRetPrdAListGrd();
					}
					initPage();
    //enter
   /* document.onkeydown=function(event){
        var e = event || window.event || arguments.callee.caller.arguments[0];
        if(e && e.keyCode==13){ // 按 enter
            $('.bootbox').modal("hide");
        }
    }*/
                    //表格自适应
                    function resizeFnc(){
                        var offsetBottom, divWidth;
                        divWidth = $("#divLeft").width();
                        offsetBottom =  $(window).height() - $("#divLeft").offset().top;
                        $("#retPrdAListDiv").height(offsetBottom * 0.95);
                        $("#retPrdAListGrd").setGridWidth(divWidth * 0.85);
                        $("#retPrdAListGrd").setGridHeight(offsetBottom * 0.99 - 100);

                        divWidth = $("#divRight").width();
                        offsetBottom =  $(window).height() - $("#divRight").offset().top;
                        $("#retPrdBListDiv").height(offsetBottom * 0.95);
                        $("#retPrdBListGrd").setGridWidth(divWidth * 0.85);
                        $("#retPrdBListGrd").setGridHeight(offsetBottom * 0.99 - 100);

                    };
                    resizeFnc();
                    $(window).resize(function() {
                        resizeFnc();
                    });
				})